package tacos.simpleflow;

import org.springframework.integration.annotation.MessagingGateway;
import org.springframework.integration.file.FileHeaders;
import org.springframework.messaging.handler.annotation.Header;

/**
 * 网关接口
 */
@MessagingGateway(defaultRequestChannel = "textInChannel") // 告诉Spring Integration 在运行时自动生成该接口的实现，
// 这与Spring Data在运行时生成repository接口的实现非常类似，defaultRequestChannel表明接口方法调用时所返回的消息要发送到给定的消息通道。
public interface FileWriterGateway {
    /**
     * Header注解表明filename的值应该包含在消息头信息中（）通过FileHeaders.FileNAME声明，它将会被解析成file_name，而不是放到消息载荷(payload)中
     * @param filename  文件名
     * @param data 文件中的文本内容
     *
     * P205
     */
    void writeToFile(@Header(FileHeaders.FILENAME) String filename,String data);
}
